Auto-discovery based item(s) sharing, including sender pushing and recipient approval

ABSTRACT

Methods and apparatus involve the voluntary transfer or sharing of item(s), such as files or other data, based upon the automatic discovery of recipients, including sender pushing of the items and recipient approval. During use, computing devices advertise their availability for potential receipt of the items and recipients are automatically discovered. The sender attaches the items to a selected recipient, and a size, description, etc. of the items is calculated. Upon a connection between the sending and recipient computing devices, the sending device pushes to the recipient an identifier of the sender and the size, description, etc., so the recipient can determine whether they want to accept transfer. If so, the items are transferred, including display of the progress. If not, the sender is notified of the refusal. Other features contemplate attaching techniques, visual information display, authentication of parties, computer program products, and systems, to name a few.

FIELD OF THE INVENTION

Generally, the present invention relates to computing environments involving voluntary transfer of item(s), such as file or data sharing between computing devices. Particularly, although not exclusively, it relates to sharing item(s) based upon the automatic discovery of recipients, including sender pushing of the items to the recipient after recipient approval. Other features contemplate discovery techniques, techniques for attaching items to a recipient, file or data particulars, visual displaying of information, such as potential recipients and their information, transfer progress and refusal-to-accept notices, and authentication of parties, to name a few. Computer program products, computing interaction and systems are also disclosed.

BACKGROUND OF THE INVENTION

As is known, many ways exist to share or send files to people in a computing environment. But in every technology, it is required to know a modicum of information about the recipient, such as an email address, a login id, etc., before transmission of files can occur. That information causes inconvenience to senders because they have to first find it before they are able to use it. Also, traditional file sharing is of the type where recipients make requests of senders before file transfer occurs. Further, senders and recipients often lack actual knowledge of the other party involved in the transaction so security of information can be sometimes compromised.

Accordingly, there exists a need in the art of file or data transfer between parties to discover information about the recipient without having forehand knowledge of their email address, login id, etc. Also, there is a further need to be able to conveniently display recipient information to senders and to transfer items without requests first conning from the recipients. Authentication of parties is her useful. In that many computing configurations already have available discovery information about network users, it is further desirable to leverage existing configurations, thereby avoiding the costs of providing wholly new products. Taking advantage of existing frameworks, such as MDNS (multicast DNS), Avahi, Bonjour, etc. or any discovery framework is another feature that optimizes existing resources. Any improvements along such lines should further contemplate good engineering practices, such as relative inexpensiveness, stability, ease of implementation, high security, flexibility, etc.

SUMMARY OF THE INVENTION

The foregoing and other problems become solved by applying the principles and teachings associated with the hereinafter-described auto-discovery based item(s) transfer, including sender pushing and recipient approval. At a high level, methods and apparatus teach the voluntary transfer or sharing of item(s), such as files or other data (jpegs, video, photos, music, mp3s, cuts from application documents, etc.), based upon the automatic discovery of recipients, including a sending computing device pushing the items to the recipient upon approval by the recipient. In this manner, file or data transfer occurs as persons would exchange information with one another in person. No longer is file zipping or other bundling techniques required nor are recipients required to affirmatively request files or data to be furnished before receipt.

For example, two people use computers on a network. One person wants to give a file or data stored on their computer to the other person. The invention provides a means of discovering the other person on the network and giving the file or data to them without request of the recipient or the use of a third computer. In a representative embodiment, features combine the mDNS (multicast DNS) protocol for discovery along with push technology to send files and data, which results in advantage over the art. Namely, no pre-configuration is required to identify people and identification is based on a person's actual attributes, not their computer logins or ids, etc. Also, in that all prior solutions are request-based, no pushing technology for item transfer is used.

During use, computing devices advertise their availability for potential receipt of the items. Upon a sender desiring to transfer items, recipients are automatically discovered. The sender attaches the items to a selected recipient, and a size, description, etc. of the items is calculated. Upon a connection between the sending and recipient computing devices, the recipient is notified of a sender of the items and the size, description, etc., so they can determine whether they want to accept transfer of the items. If so, the items are transferred, including display of the progress of the transferring. If not, the sender is notified of the user's refusal to accept the items.

In specific embodiments, various displaying of the potential recipients for file or data transfer is disclosed. For instance, pictures, email addresses, names, titles, etc. are populated in a window for a sender to view. Dragging-and-dropping, cutting-and-pasting, or other data movement techniques are employed to attach the item(s) to one or more recipients. To be certain of sender or recipient authority for sensitive files or data, for instance, authentication optionally occurs per the various parties before transferring items.

In a computing system embodiment, the invention may be practiced with: a sending and recipient computing device arranged as part of pluralities of physical or virtual computing devices, including executable instructions for undertaking the foregoing auto-discovery, sender-pushing and recipient-approving methodologies. Computer program products are also disclosed and are available as a download or on a computer readable medium. The computer program products are also available for installation on a network appliance or individual computing devices. In still other embodiments, computing networks and party interaction are discussed, as are possible auto-discovery techniques.

These and other embodiments of the present invention will be set forth in the description which follows, and in part will become apparent to those of ordinary skill in the art by reference to the following description of the invention and referenced drawings or by practice of the invention. The claims, however, indicate the particularities of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings incorporated in and forming a part of the specification, illustrate several aspects of the present invention, and together with the description serve to explain the principles of the invention. In the drawings:

FIG. 1 is a diagrammatic view in accordance with the present invention of a representative computing environment for auto-discovery based item(s) transfer, including sender pushing and recipient approval;

FIG. 2 is a flow chart in accordance with the present invention for practicing one or more features of the invention; and

FIGS. 3-7 are diagrammatic views in accordance with the present invention corresponding to the representative flow chart of FIG. 2.

DETAILED DESCRIPTION OF THE ILLUSTRATED EMBODIMENTS

In the following detailed description of the illustrated embodiments, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention and like numerals represent like details in the various figures. Also, it is to be understood that other embodiments may be utilized and that process, mechanical, electrical, arrangement, software and/or other changes may be made without departing from the scope of the present invention. In accordance with the present invention, methods and apparatus for auto-discovery based item(s) transfer or sharing, including sender pushing of the items and recipient approval, are hereinafter described.

With reference to FIG. 1, a representative computing environment 10 for practicing certain or all aspects of the invention includes one or more computing devices 15 or 15′ arranged as individual or networked physical or virtual machines for senders and/or recipients of item(s), including clients or hosts arranged with a variety of other networks and computing devices. In a traditional sense, an exemplary computing device typifies a server 17, such as a grid or blade server. Brand examples include, but are not limited to, a Windows brand Server, a SUSE Linux Enterprise Server, a Red Hat Advanced Server, a Solaris server or an AIX server. Alternatively, it includes a general or special purpose computing device in the form of a conventional fixed or mobile (e.g., laptop) computer 17 having an attendant monitor 19 and user interface 21. The computer internally includes a processing unit for a resident operating system, such as DOS, WINDOWS, MACINTOSH, LEOPARD, VISTA, UNIX, and LINUX, to name a few, a memory, and a bus that couples various internal and external units, e.g., other 23, to one another. Representative other items 23 include, but are not limited to, PDA's, cameras, scanners, printers, microphones, joy sticks, game pads, satellite dishes, hand-held devices, consumer electronics, minicomputers, computer clusters, main frame computers, a message queue, a peer computing device, a broadcast antenna, a web server, an AJAX client, a grid-computing node, a virtual machine, a web service endpoint, a cellular phone, or the like. The other items may also be stand alone computing devices 15′ in the environment 10 or the computing device itself.

In either, storage devices are contemplated and may be remote or local. While the line is not well defined, local storage generally has a relatively quick access time and is used to store frequently accessed data, while remote storage has a much longer access time and is used to store data that is accessed less frequently. The capacity of remote storage is also typically an order of magnitude larger than the capacity of local storage. Regardless, storage is representatively provided for aspects of the invention contemplative of computer executable instructions, e.g., software, as part of computer program products on readable media, e.g., disk 14 for insertion in a drive of computer 17. Computer executable instructions may also be available for installation as a download or reside in hardware, firmware or combinations in any or all of the depicted devices 15 or 15′.

When described in the context of computer program products, it is denoted that items thereof, such as modules, routines, programs, objects, components, data structures, etc., perform particular tasks or implement particular abstract data types within various structures of the computing system which cause a certain function or group of functions. In form, the computer product can be a download of executable instructions resident with a downstream computing device, or readable media, received from an upstream computing device or readable media, a download of executable instructions resident on an upstream computing device, or readable media, awaiting transfer to a downstream computing device or readable media, or any available media, such as RAM, ROM, EEPROM, CD-ROM, DVD, or other optical disk storage devices, magnetic disk storage devices, floppy disks, or any other physical medium which can be used to store the items thereof and which can be assessed in the environment.

In network, the computing devices communicate with one another via wired, wireless or combined connections 12 that are either direct 12 a or indirect 12 b. If direct, they typify connections within physical or network proximity (e.g., intranet). If indirect, they typify connections such as those found with the internet, satellites, radio transmissions, or the like, and are given nebulously as element 13. In this regard, other contemplated items include servers, routers, peer devices, modems, T# lines, satellites, microwave relays or the like. The connections may also be local area networks (LAN), metro area networks (MAN), and/or wide area networks (WAN) that are presented by way of example and not limitation. The topology is also any of a variety, such as ring, star, bridged, cascaded, meshed, or other known or hereinafter invented arrangement.

With the foregoing representative computing environment as backdrop, FIG. 2 teaches a high-level organization 100 for features of the invention. FIGS. 3-7 show representative views therefore displayed on a monitor 19 of a computing device (e.g., 15 or 15′, FIG. 1). Beforehand, however, an application is installed on a computing device and run on a desktop, for instance. That application (presently configured as “Giver” in Opensuse 10.3) dynamically (or statically if such an overriding configuration exists) allocates a port of the computing device to host a small http/https server. The application then uses an MDNS (Multicast DNS) library (e.g., Avahi on Linux, Bonjour on others) to advertise itself on the network along with identifying information about the current user. That information includes, for instance, the user's name 201, email address 202, and a photograph 203. In turn, the photograph may be located on the computing device of the user and retrievable via a connection on the advertised port, or may be hosted on the web and found using an advertised URL.

In any event, a second computing device (e.g., 15 or 15′, FIG. 1), also running the application, discovers all other machines on the network running this application, step 102. By collecting this information, the application can then display a list 210 of people (i.e., one or more recipients) ready to accept files or data and conveniently visually display their information, e.g., name, email address, photograph, etc., in a window 211. At step 104, the sender then attaches to the intended recipient the relevant items they wish to transfer. In various embodiments, Giver is enabled such that items can be selected 220 and dragged-and-dropped with a pointer 225 onto the photographs 203 (or other identifying information) of the recipient(s). In other embodiments, cutting-and-pasting techniques are possible as well as any other known or hereafter invented data-movement technique. At step 106, concurrent with the attachment or some time thereafter, the Giver application then calculates a size of the items to be sent and makes a connection with the recipient on the recipient's advertised port, step 107. It may also calculate other information such as a description of the items or other useful information.

Further, the connection entails pushing a small amount of data to the recipient, such as the description and size of the to-be-transferred items so that the recipient can be meaningfully queried, at step 108, as to whether they want to accept the items. As seen in FIG. 5, the query 108 appears on the recipient's computing device as a box or window pop-up, including a description 230 and size 240 (e.g., 3 megabytes) of the items (so dragged-and-dropped from FIG. 4) and an identifier 250 about the sender so the recipient can make an informed decision as to whether they want to approve (accept) or reject the file or data transfer, step 110.

If so, the recipient indicates their desire to accept transfer, such as by clicking a Y answer box 260 with a pointing device, FIG. 5, and the item(s) are transferred, step 112. Optionally, step 114, this includes providing a display 270 of progress relative to the recipient's information in the display list 210 of the sender, FIG. 6 and/or a display of progress for the recipient. If not, on the other hand, the recipient indicates their refusal to accept transfer at step 110, such as by clicking a N answer box 265 with a pointing device, FIG. 5, and the sender is notified of same at 280, FIG. 7.

In sum, computing devices A and B, and others, are installed with a common program to advertise their availability for receipt of items and, when the sender of items discovers available recipients, they push the item(s) to the recipient(s) upon approval. Progress display is also possible as is notice of recipient refusal. As presently packaged, all of the communications between computing devices are done using a protocol written on top of http. However, the protocol could easily be moved and implemented over pure sockets, but for speed and ease of development, http was used as the base to build the first working protocol.

In alternate embodiments, a variety of extensions could exist. Also, it is possible to introduce a server that would perform an “online” check or approval and possibly caching of the moving of files. While there are many file sharing services, none are truly private that function like email. In this regard, skilled artisans can envision extensions as email but only for files and those written to deal with very large amounts of data, and sets of data (like folders of files).

An interface could also be added to the technology to allow other applications to plug in and share data between users (senders/recipients) of the items. For example, on Linux, F-Spot could plug into this technology and allow a user to see other users running F-Spot and have the option to share photos with them. The sharing would actually send the photos to the other computing devices and integrate them into the application. While some current solutions are similar to this, they are all pull technologies instead of push, and none have the intervening ability of approval by the recipients.

In still other embodiments, multicast sends could be introduced so that people together in a common conference room could have data broadcast from one sending computing device to all or many discovered recipients, e.g., all those on list 210, FIG. 3. And rather than making a connection to only one computer, the data is broadcast on a network and all computers that accepted or approved an initial send would be able to receive the item(s). Alternatively, each individual recipient could still approve or reject each future sending of item(s).

In any embodiment, skilled artisans will appreciate that item transfer could be used nefariously, such as for virus infection, spam, etc., or by users spoofing or pretending to be other users. Thus, a further embodiment of the invention contemplates authentication of one or more of the parties (sender/recipient(s)) involved in item transfer. Representatively, one party might request a public key to be transferred so they may be authenticated with a corresponding private key. In another, user authentication programs or third party authentication services may be launched as part of the process to authenticate either the sender or recipient(s), or both, and such would likely occur before any item(s) are actually transferred from one computing device to another. Authentication also can occur after the initial connection, but after the initial push of the item(s) size, such as at step 107. Of course, skilled artisans will readily contemplate other embodiments.

Finally, one of ordinary skill in the art will also recognize that additional embodiments are possible without departing from the teachings of the present invention. This detailed description, and particularly the specific details of the exemplary embodiments disclosed herein, is given primarily for clarity of understanding, and no unnecessary limitations are to be implied, for modifications will become evident to those skilled in the art upon reading this disclosure and may be made without departing from the spirit or scope of the invention. Relatively apparent modifications, of course, include combining tie various features of one or more figures with the features of one or more of other figures. 

1. In a computing system environment, a method of transferring items from a first computing device to a second computing device, comprising: automatically discovering one or more acceptable recipients for receipt of the items on the second computing device; attaching the items to a particular recipient of the one or more acceptable recipients; after connection between the first and second computing devices, identifying to the particular recipient a sender of the items and/or a size of the items; and determining whether the particular recipient wants to accept transfer of the items from the first computing device.
 2. The method of claim 1, further including causing display of the one or more acceptable recipients on a monitor of the first computing device, including displaying a picture, an email address or a name per each of the one or more acceptable recipients.
 3. The method of claim 2, wherein the attaching the items further includes dragging and dropping the items onto the picture, the email address or the name of at least one of the one or more acceptable recipients.
 4. The method of claim 1, further including advertising potential availability for receipt of the items.
 5. The method of claim 1, further including calculating the size of the items before the connection between the first and second computing devices.
 6. The method of claim 1, wherein upon indication from the particular recipient to said accept transfer of the items, further including transferring the items from the first to the second computing device, including displaying progress of the transferring.
 7. The method of claim 1, whereupon refusal from the particular recipient to said accept transfer of the items, further including notifying the sender of the refusal.
 8. In a computing system environment, a method of transferring items from a first computing device to a second computing device, comprising: advertising availability for potential receipt of the items; from the advertising, automatically discovering one or more acceptable recipients for receipt of the items on the second computing device; at the first computing device, attaching the items to a particular recipient of the one or more acceptable recipients; after connection between the first and second computing devices, identifying to the particular recipient a sender of the items and/or a size of the items; determining whether the particular recipient wants to accept transfer of the items from the first computing device; and if so, transferring the items to the second computing device.
 9. The method of claim 8, wherein upon indication from the particular recipient to said accept transfer of the items, further including authenticating the particular recipient before the transferring the items.
 10. The method of claim 9, wherein the authenticating further includes authenticating with public and private keys, including transferring a public key of the particular recipient to the first computing device.
 11. In a computing system environment a method of transferring items from a first computing device to a second computing device, comprising: advertising potential availability for receipt of the items; from the advertising, automatically discovering one or more acceptable recipients for receipt of the items on the second computing device; at the first computing device, attaching the items to a particular recipient of the one or more acceptable recipients; calculating a size of the items and a description therefor; upon a connection between the first and second computing devices, identifying to the particular recipient a sender of the items, the size of the items and the description of the items, the identifying occurring as a result of a push of data from the first computing device to the second computing device; and upon the identifying, determining whether the particular recipient wants to accept transfer of the items from the first computing device.
 12. The method of claim 11, further including causing display of the one or more acceptable recipients on a monitor of the first computing device, including displaying a picture, an email address or a name per each of the one or more acceptable recipients.
 13. The method of claim 12, wherein upon indication from the particular recipient to said accept transfer of the items, further including transferring the items from the first to the second computing device, including displaying progress of the transferring relative to the displayed picture, email address or name.
 14. The method of claim 11, whereupon refusal from the particular recipient to said accept transfer of the items, further including notifying the sender of the refusal.
 15. A computing system having pluralities of computing devices arranged to transfer items, comprising: a sending computing device; and a recipient computing device, each of the computing devices configured to advertise to other of the computing devices their availability for potential receipt of the items wherein, upon the advertising, automatically discovering the recipient computing device as one or more acceptable recipients for receipt of the items, the sending computing device configured to calculate a size of the items wherein upon a connection between the sending and recipient computing devices a user of the recipient computing devices is notified of a sender of the items and the size of the items so that a determination can be made as to whether the user wants to accept transfer of the items from the sending computing device.
 16. The computing system of claim 15, wherein if the user indicates acceptance of said transfer of the items, the sending computing device is configured to transfer the items including displaying progress of the transferring.
 17. The computing system of 15, wherein upon the user refusing acceptance of said transfer of the items, the sending computing device is configured to notify the sender of the refusal.
 18. A computer program product available as a download or on a computer readable medium for loading on a sending and recipient computing device of a plurality of computing devices, the computer program product having executable instructions to provide voluntary transfer of items, comprising: a first component for installation on each of the computing devices configured to advertise to other of the computing devices their availability for potential receipt of the items; a second component configured to automatically discover the recipient computing device as one or more acceptable recipients for receipt of the items; a third component configured to calculate a size and description of the items; and a fourth component configured to notify a user of the recipient computing device of a sender of the items and the size and description of the items so that a determination can be made as to whether the user wants to accept transfer of the items from the sending computing device.
 19. The computer program product of claim 18, further including a fifth component configured to notify the sender of the items of the user's refusal to said accept transfer of the items.
 20. The computer program product of claim 18, further including a fifth component configured to transfer the items from the sending computing device to the recipient computing device upon indication of the user to said accept transfer of the items.
 21. The computer program product of claim 18, further including a fifth component configured to cause display of the one or more acceptable recipients on a monitor of the sending computing device, including displaying a picture, an email address or a name per each of the one or more acceptable recipients.
 22. The computer program product of claim 18, further including a fifth component configured to authenticate the user upon indication of the user to said accept transfer of the items.
 23. The computer program product of claim 18, further including a fifth component configured to cause displaying of progress of the transferring upon indication of the user to said accept transfer of the items.
 24. The computer program product of claim 23, wherein the fifth component is further configured to cause the displaying of progress of the transferring relative to a displayed picture, email address or name of the user. 